HIGHLIGHTS

"Highlight" is the term I'm using to describe holidays, anniversaries, birthdays, and other notable dates. There is no design limitation on the number of highlights that can be assigned, since multiple highlights can be assigned for each day of the year. There is a comment line beginning the highlight list for each month; this is not necessary for the macro but helps organize the highlights.

There are several possibilities for highlight information, depending on whether the highlight falls on a fixed date or can "float". Both fixed highlights and floating highlights and can be set to happen monthly, while floating highlights can also be set to show up only on weekdays or to always show up on the last day of the month. Highlights can also be set to occur weekly or biweekly (ie, on a certain weekday of only odd or even weeks).

Multiple events falling on the same day will automatically be accounted for. If you're using different box colors for your holiday-events and other highlights, only the box for the first event will be drawn (this keeps boxes from covering up already-rendered text).

If a highlight is wider than the calendar box width, the highlight will be compressed if possible and word-wrapped if necessary.

Any comments MUST be fully contained in the same line, and highlights MUST be preceeded by the line:
/* End Pass One - DO NOT DELETE THIS LINE!!! */

All events will be bolded in minicalendars (if printed). If a # is appended to the end of the event, that event will be boxed in the minicalendars.

Fixed-date - Birthdays and Christmas are examples of fixed-date highlights
Example: 12Highlight.12.25 = "Christmas#"
12 - the two-digit month in which the event occurs
Highlight - the keyword
12 - the month in which the event occurs
25 - the date on which the event occurs
'Christmas' - the event as it will be inserted
# - indicates the event is a holiday-event (optional)

Floating - Mother's Day and Thanksgiving are examples of floating highlights
Example: 05CalculateDate(5, "Monday", 14, "Mother's Day")
(This means: When Mother's Day falls on its highest numerical day in any year (Sunday, May 14th), May 1st is always on a Monday. See below for the breakout.)
05 - the two-digit month in which the event occurs
CalculateDate  - the keyword
5 - the month in which the event occurs
"Monday" - the day of the week on which the 1st of the month occurs for the value below
14 - the highest numerical date on which the event can occur
"Mother's Day" - the event as it will be inserted
# - indicates the event is a holiday-event (optional)

If you attend lunch meetings held on the first and third Thursdays of every month, you could add the following entries (see the discussion about monthly events below):

13CalculateDate(13, "Friday", 7, "Lunch Meeting")
13CalculateDate(13, "Friday", 21, "Lunch Meeting")

Easter-based - Good Friday and Ash Wednesday are examples of Easter-based highlights
Example: CalculateEDate(-2, "Good Friday#")
CalculateEDate - the keyword
-2 - the number of days before or after Easter on which the event occurs
"Good Friday" - the event as it will be inserted
# - indicates the event is a holiday-event (optional)

Weekly/Biweekly - For events that occur every week or every two weeks.
Example: 13CalculateDate(13, "Friday", "Odd", "Pay Day")
(This means: Pay day comes on Fridays of the odd-numbered weeks. See below for the breakout.)
13 - the two-digit month in which the event occurs (will usually be 13 to include all months)
CalculateDate  - the keyword
13 - the month in which the event occurs (will usually be 13 to include all months)
"Friday" - the day of the week on which the biweekly event falls
"Odd" - "Odd", "Even", or "All", depending on which weeks the event falls
"Pay Day" - the event as it will be inserted

Monthly - Monthly events (events that take place on the same day every month) can be included by setting the month equal to 13. Both floating and fixed events can be included. For example, if you need to pay the rent on the 5th of each month, you could add the following highlight:

13Highlight.13.5 = "Pay Rent"

End-of-month - Some events, such as pay day, may always fall on the last day of the month. for these cases, enter 32 for the event's day. Although most useful for monthly events, this can also be used for events that happen specifically on the last day of February.

13Highlight.13.32 = "Pay Day"

Non-weekend - If an event always falls on the same day UNLESS that day is a weekend, this can be accounted for by putting an N (if the event will fall on the next weekday) or a P (if the event will fall on the preceeding weekday) after the date. This can be combined with the end-of-month, monthly, and floating-highlight possibilities.

13Highlight.13.32P = "Payday" /* Last weekday of each month */
04Highlight.4.15N = 'Tax Day' /* >= April 15 */